package com.xyzq.cgate.core.plugin;

import com.xyzq.cgate.common.enums.PluginDetailEnum;
import org.springframework.web.server.ServerWebExchange;
import reactor.core.publisher.Mono;

/**
* @Description:
* @author chenchen
* @date 2019/6/19 13:40
*/
public interface IPlugin {

    Mono<Void> execute(ServerWebExchange exchange, IPluginChain chain);

    String getPluginPhase();

    int getCode();

    String getName();

    default boolean skip(ServerWebExchange exchange) {
        return false;
    }

}
